import {ObjectPoolBase} from "./ObjectPoolBase";
import Component = cc.Component;
export interface IObjectPoolManager {
    Count():number;

    HasObjectPool<T extends Component>(type: { prototype:T }|string):boolean;

    GetObjectPool<T extends Component>(type: { prototype:T }|string):ObjectPoolBase;

    GetAllObjectPools():ObjectPoolBase[];

    CreateObjectPool<T extends Component>(type: { prototype:T }|string,capacity?:number):ObjectPoolBase;

    DestroyObjectPool<T extends Component>(type: { prototype:T }|string):boolean;

}